1. Technical Field
The present invention is related to control software for network elements. Specifically, the present invention provides a method, a computer program product, and a data processing system for platform-independent, adaptable control of a network element.
2. Description of Related Art
Modern telecommunications depends on networks. A network is a set of interconnected machines (network elements) that allow data to be relayed across the set of machines from a source to a destination. As the need for faster and more versatile telecommunications has increased, networks have evolved to accommodate that need. The automatically-switched telephone system replaced early manual switchboards. Digital telephony replaced analog telephony. Data networks allowed binary data to be transmitted as well as sound. Now optical and wireless networks provide users with greater speed, flexibility, and mobility in telecommunications than ever before.
As telecommunications needs continue to increase, faster, more flexible, and more reliable network infrastructure is needed. Current-technology circuit-switched optical networks, for example, utilize centralized control systems for establishing and terminate routing paths in the network. In other words, a central control system determines the series of network elements that will relay information from the source to the destination for a given network connection. These centrally-controlled networks suffer from performance and reliability problems. Central control creates a single point of failure and puts an inordinate amount of workload on the central control system when many connections must be established and terminated.
Generalized Multi-Protocol Label Switching (GMPLS) is a promising solution to the problem of centralized control. The GMPLS concept is to control network routing in a distributed fashion through the use of label switching and signaling. FIGS. 1A, 1B, and 2 demonstrate how label switching works. Label switching router (LSR) 100 is a network element in a network. LSR 100 receives information 106 via one of input ports 102. Information 106 contains a label (in this case the number “135”) that tells LSR 100 how to route information 106.
To identify how to route information 106, LSR 100 consults a next hop forwarding table stored in its memory. FIG. 1B is a diagram of such a next-hop forwarding table. LSR 100 locates the entry in the table corresponding to the input port 110 and label 112 of information 106. That entry maps input port 110 and label 112 into the correct output port 114 and output label 116. To route information 106 to the next network element, the label on information 106 is then changed to the output label indicated in the table and the newly labeled information (information 108 in FIG. 1A) is then output on the appropriate output port as determined by the table.
FIG. 2 is a diagram providing a more extensive example of label switching. An Internet Protocol (IP) packet 200 addressed to IP address “128.190.18.2” is forwarded from a sending computer system to ingress router 202. Router 202 calculates a route through routers 206, 210, and 214 to the destination. Router 202 communicates this switching information using a signaling protocol to routers 206, 210, and 214, which update their forwarding tables accordingly. Router 202 then affixes a label “135” to packet 200 to obtain labeled packet 204, which it forwards to the next router in the route, LSR 206. LSR 206 uses its routing table to determine the proper output port and label to use when forwarding labeled packet 204. LSR 206 then swaps the label “135” for the new label “108” from the routing table and transmits the resulting packet (packet 208) out the proper output port to LSR 210. LSR 210 swaps labels according to its routing table to obtain packet 212, which it forwards along the appropriate output port to router 214. Router 214, then detaches the label to obtain packet 216, which is a copy of original IP packet 200. Router 214 forwards packet 216 to its ultimate destination according to the IP address of packet 216.
In GMPLS, the label need not be a number, but could be any sort of distinguishing information. For example, in an optical network, information that is transmitted on a certain wavelength of light could be “labeled” by the wavelength of light used, so that different signals at different wavelengths traveling along the same optical fiber would have different “labels.” This is called “wavelength-division multiplexing” (WDM). Analogously, in a wireless network, different frequencies or ranges of frequencies may be considered different “labels” for data. Time-divisioned multiplexing in which each timeslot represents a different “label” can also provide a form of labeling. Label switching, then, can allow information to be switched or routed very quickly, as there is no need to actually read or decode the information being routed. GMPLS augments centralized control by utilizing the concept of a “control plane” in which network elements cooperate in establishing and terminating connections. When a connection in a GMPLS network is to be established, the GMPLS network element that first receives a request to make a connection (the ingress router) calculates a route through the network. The ingress router then communicates this route information to the network elements in the route to allow the network elements to make adjustments to their switching fabric, called a cross connect, to allow the label-switched routing of information along the newly-established route. This process of communicating the route information is known as “signaling,” and there are “signaling protocols” through which this signaling communication occurs.
Thus, in GMPLS, the responsibility for determining, establishing, and terminating routes is shared among the network elements. This is beneficial from a performance standpoint as well as from a standpoint of reliability, because there is no centralized control system to act as a performance bottleneck or single point of failure.
A distributed control system, such as provided by GMPLS, implies that each individual network element must be capable of handling a significant computational load, since each network element must provide at least a portion of the control functions of the network. As network demands increase, therefore, it is desirable that control plane functions provided by each network element be scalable, so that the computing power of a network element may be matched to the computational demands placed upon it. It would also be beneficial for a network element to be adaptable and for its control software to be platform-independent, to preserve compatibility among network elements, while allowing the administrator of the network element to vary the hardware platform to meet dynamic needs.